In a Long Term Evolution (LTE) system, uplink data is carried on a physical uplink shared channel (PUSCH), and downlink data is carried on a physical downlink shared channel (PDSCH). For both the PUSCH and the PDSCH, turbo coding with a mother code rate of 1/3 is used for channel coding. A sending device performs turbo coding with a code rate of 1/3 on sent data, and outputs three data streams. The three data streams are combined, and different code rates can be obtained through rate matching. When a hybrid automatic repeat request (HARQ) technology is used, the sending device places a coded data block in a virtual circular buffer of the data block, where the virtual circular buffer includes both information bits and parity bits. The sending device obtains coded data from the virtual circular buffer based on a code rate of each transmission and a column starting position of a coded data block, and sends the coded data to a receiving device. The receiving device places the received coded data in the virtual circular buffer for combining and decoding. A column starting position of the coded data of each transmission in the virtual circular buffer is indicated by a redundancy version used in each retransmission. Different redundancy versions indicate different column starting positions of coded data blocks of retransmission in the virtual circular buffer. In a current LTE protocol, four redundancy versions are used to indicate four different column starting positions. Because a code rate of initial transmission in the current protocol is generally less than 1.0, by using turbo decoding with a mother code rate of 1/3, the receiving device receives only a maximal of 1/3 of the virtual circular buffer each time. Theoretically, three redundancy versions, namely, three column starting positions, are sufficient to link up all information bits and parity bits.
If a size of a code block can be enhanced, that is, a code rate of single transmission is enhanced; the code block is transmitted for a plurality of times through HARQ; and a different redundancy version is selected for coded bits of each transmission, a coding gain and a time diversity gain can be obtained, to protect against fluctuation of the channel itself and interference, and reduce a throughput loss caused by modulation and coding scheme (MCS) selection inaccuracy.
However, when a code rate exceeds 1.0, fewer coded bits are transmitted each time, and a quantity of bits occupied between starting positions of the four redundancy versions exceeds a quantity of bits of each transmission. As a result, regardless of how to select a redundancy version, it cannot be ensured that all coded bits are traversed, and specifically when the information bits are not all sent, demodulation performance is affected. If a retransmission code rate needs to be improved, more starting positions need to be indicated in each retransmission correspondingly.